package com.micro.ai.files.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.micro.ai.files.entity.StorageQuota;

/**
 * 存储配额服务接口
 * 
 * @author micro-ai
 * @since 0.0.1
 */
public interface StorageQuotaService extends IService<StorageQuota> {

    /**
     * 获取或创建配额
     */
    StorageQuota getOrCreate(String tenantId);

    /**
     * 更新配额
     */
    StorageQuota update(String id, StorageQuota quota);

    /**
     * 增加已使用存储
     */
    void increaseUsedStorage(String tenantId, Long size);

    /**
     * 减少已使用存储
     */
    void decreaseUsedStorage(String tenantId, Long size);

    /**
     * 增加文件数量
     */
    void increaseFileCount(String tenantId);

    /**
     * 减少文件数量
     */
    void decreaseFileCount(String tenantId);

    /**
     * 检查配额是否足够
     */
    boolean checkQuota(String tenantId, Long fileSize);

    /**
     * 获取使用率
     */
    double getUsageRate(String tenantId);
}

